﻿Imports AccesoDatos
Public Class MultiPuesto

#Region "Manuel"

    Public Shared Function listarDR() As IDataReader
        Dim dr As IDataReader
        Dim pars(0) As AccesoDatos.Parametro
        '
        Dim sql As String = "SELECT * FROM t_puesto WHERE eliminado = p_eliminado"
        pars(0) = New AccesoDatos.Parametro("p_eliminado", 0)
        '
        Try
            dr = g_access.ejecutarQuery(sql, pars)
        Catch ex As Exception
        End Try
        Return dr
    End Function

    ''' <summary>
    ''' Arma un objeto nivel a partir de los datos en la base de datos.
    ''' </summary>
    ''' <param name="p_codigo">Codigo del puesto</param>
    ''' <remarks>Creado por: Manuel Chaves inicio:14/6/2010 mod:22/06/210</remarks>
    Public Shared Function obtener(ByVal p_codigo As Integer) As Puesto
        Dim dr As IDataReader
        Dim pars(0) As AccesoDatos.Parametro
        Dim objPuesto As Puesto = Nothing
        '
        Dim sql As String = "SELECT * FROM t_puesto WHERE codigo = p_codigo AND eliminado = 0"
        pars(0) = New AccesoDatos.Parametro("p_codigo", p_codigo)
        '
        Try
            dr = g_access.ejecutarQuery(sql, pars)
            If dr.Read Then
                objPuesto = instanciarPuesto(dr)
            End If
        Catch ex As Exception
            MsgBox("obtener en multiPuesto: " + ex.Message)
        End Try
        Return objPuesto
    End Function

    ''' <summary>
    ''' Instancia un puesto.
    ''' </summary>
    ''' <param name="p_dr">IDataReader con los datos de un puesto</param>
    ''' <remarks>Creado por: Manuel Chaves inicio:14/6/2010 mod:22/06/210</remarks>
    Private Shared Function instanciarPuesto(ByVal p_dr As IDataReader) As Puesto
        Dim codigo As Integer = p_dr.Item("codigo")
        Dim nombre As String = p_dr.Item("nombre")
        Dim descripcion As String = p_dr.Item("descripcion")
        Dim nivel As String = p_dr.Item("codigo_nivel")
        Dim tipoSalario As Integer = p_dr.Item("tipo_salario")
        Dim salario As Double = p_dr.Item("salario")
        Dim objPuesto = New Puesto(codigo, nombre, descripcion, nivel, tipoSalario, salario)
        Return objPuesto
    End Function

#End Region

#Region "Stephan"

    ''' <summary>
    ''' Actualiza el salario de un puesto.
    ''' </summary>
    ''' <param name="p_salario">salario del puesto</param>
    ''' <param name="p_codigo">codigo del puesto</param>
    ''' <remarks>Creador por: Stephan Endres, Fecha: 20/06/2010, Modificado: 20/06/2010.</remarks>
    Public Shared Sub aumentoSalarial(ByVal p_salario As Double, ByVal p_codigo As Integer)
        Dim sql As String
        Dim pars(1) As Parametro
        sql = "update t_puesto set salario = p_salario where codigo=p_codigo"

        pars(0) = New Parametro("p_salario", p_salario)
        pars(1) = New Parametro("p_codigo", p_codigo)

        g_access.ejecutarSQL(sql, pars)
    End Sub


#End Region


End Class
